Intent

Durch diese Entwurfsmuster wird die Schnittstelle der unterschiedlichen Maschinentypen zu einer einheitlichen Schnittstelle konvertiert. Dadurch kann die Ablaufsteuerung immer über die gleiche Schnittstelle die unterschiedlichen Maschinentypen steuern.

Motivation

In der Fertigungszelle sind unterschiedliche Maschinentypen vorhanden, die unterschiedliche Aufgaben ( Bearbeitung, Handhabung und Transport ) wahrnehmen. Die Schnittstelle der Maschinentypen muß aus diesem Grund auf die direkte Ansteuerung der Maschinen angepaßt sein und Befehle wie Laden und Starten eines Programmes beinhalten. Damit die einzelnen Aufgaben der Maschinen nicht direkt in die Ablaufsteurung ( Klasse ProcessingControl ) programmiert werden muß, wird einen zusätzliche Schnittstellenebene eingeführt. In dieser Schnittstellenebene werden nun abstaktere Befehle implementiert. Zum Beispiel ist für die Handhabung ein Befehl zum Wechsel der Werkzeuge vorhanden.

Applicability

Es wird das Adapter-Muster verwendet, weil die Maschinen in der Fertigungszelle für unterschiedliche Aufgaben ( Bearbeitung, Transport und Handhabung ) verwendet werden können. Die Schnittstelle der Maschinen wäre zu groß, wenn alle Aufgabe mit einer Schnittstelle gelöst werden sollen. Deshalb werden mehrere Adapter-Muster verwendet, so daß für jede Aufgabe eine Schnittstelle vorhanden ist.

Es wird das Objekt-Adapter-Muster verwendet, weil die Anpassung für viele unterschiedliche Maschinen über eine Elternklasse ( z.B. CNCMaschine ) möglich ist.

Structure

Participants

Consequences

Es wurde der Adapter mit Objektkomposition verwendet. Damit ist es möglich, daß eine von Handling abgeleitete Adapterklasse (z.B. CNC_Handling) mit unterschiedlichen Maschinen zusammen arbeiten kann. Denn sie spricht die Schnittstelle von CNC_Machine an und über diese Schnittstelle werden auch die von CNC_Machine abgeleiteten Klassen (z.B. DEMAGRobot) erreicht.

Durch die Objektkomposition ist es im Gegensatz zum Adapter mit Mehrfachvererbung schwieriger die Zustände der Adaptee-Klasse (z.B. CNC_Machine) zu verändern.

Implementation

Related Pattern



OSEFA: © '96 Fachhochschule Konstanz, Fachbereich Informatik, Prof. Schmid
Dokumentation: © '97 Universität-GH Siegen, FB 12, Markus Blachnik & Georg Odenthal